import { get } from '@/utils/request';
import request from '@/utils/request';

// 抢单记录
export const orderApi = {
  // 查询卡密的历史抢单记录、当日抢单数量和金额、历史总订单数量和金额
  queryOrderSuccessList: (params) => request.post(
    '/OrderSuccessController/queryOrderSuccessList',
    params
  ),

  // 开始抢单
  startGrabOrder(configData) {
    return request.post('/DidiController/set_userConfig_state', {
      ...configData,
      state: true
    })
  },

  // 停止抢单
  stopGrabOrder({ cardKey }) {
    return request.post('/DidiController/set_userConfig_state', {
      cardKey,
      state: false
    })
  }
};

// 日志记录
export const logApi = {
  /**
   * 获取日志列表
   * @param {string} cardKey 卡密
   * @returns {Promise} 日志列表Promise
   */
  getLog(param) {
    return request.post(
      '/LogController/getLog',
      param
    )
  }
}

// TK相关 用户认证
export const userApi = {
  /**
   * 获取用户Token
   * @param {string} phoneNumber 手机号码
   * @returns {Promise} 用户Token Promise
   */
  getUserToken(phoneNumber) {
    return request.get('/TkController/getUserToken', {
      params: { phone_number: phoneNumber }
    })
  }
}

// 小号管理
export const subTokenApi = {
  /**
   * 系统卡密配置
   * @param {Object} params 卡密配置参数
   * @param {string} params.oldCardKey 旧卡密
   * @param {string} params.newCardKey 新卡密
   * @returns {Promise} 卡密配置结果Promise
   */
  sysConfig(params) {
    return request.get('/CardKeyController/sysConfig', {
      params: {
        oldCardKey: params.oldCardKey,
        newCardKey: params.newCardKey
      }
    })
  },
  /**
   * 保存小号信息
   * @param {string} cardKey 卡密
   * @returns {Promise} 保存小号信息的Promise
   */
  saveSubTokens(params) {
    return request.post('/SubTokenController/saveSubTokens', params)
  },

  /**
   * 同步小号路线
   * @param {Object} params 同步路线参数
   * @param {number} params.startGisLon 起始经度
   * @param {number} params.startGisLat 起始纬度
   * @param {string} params.token 主号token
   * @param {string} params.subTokens 小号信息
   * @returns {Promise} 同步路线的Promise
   */
  synRoutes(params) {
    return request.post('/SubTokenController/synRoutes', params)
  },

  /**
   * 同步小号常用路线
   * @param {Object} params 同步常用路线参数
   * @param {string} params.token 主号token
   * @param {Array} params.subTokens 小号信息数组
   * @returns {Promise} 同步常用路线的Promise
   */
  synFrequentRoute(params) {
    return request.post('/SubTokenController/synFrequentRoute', params)
  },

   /**
   * 短信验证码获取
   * @param {string} cardKey 卡密
   * @returns {Promise} 登录测试结果Promise
   */
   getMessageAuthenticationCode(phoneNumber) {
    return request.get('/DiDaLoginController/getMessageAuthenticationCode', {
      params: { phoneNumber }
    })
  },

  /**
   * 通过短信验证码获取 Token
   * @param {string} phoneNumber 手机号码
   * @param {string} code 短信验证码
   * @returns {Promise} 获取Token的Promise
   */
  getTokenBySMSCode(phoneNumber, code) {
    return request.get('/DiDaLoginController/getTokenBySMSCode', {
      params: { phoneNumber, code }
    })
  },
}

// 常用路线
export const frequentRouteApi = {
  /**
   * 获取常用路线列表
   * @param {Object} params 获取常用路线参数
   * @param {string} params.cardKey 卡密
   * @param {string} params.token 用户token
   * @returns {Promise} 常用路线列表Promise
   */
  getFrequentRouteList(params) {
    return request.post('/FrequentRouteController/getFrequentRouteList', params)
  },

  /**
   * 保存常用路线
   * @param {Object} params 保存常用路线参数
   * @param {string} params.cardKey 卡密
   * @param {Array} params.selectFrequentRoutes 选择的常用路线数组
   * @returns {Promise} 保存常用路线的Promise
   */
  saveFrequentRoute(param) {
    return request.post('/FrequentRouteController/saveFrequentRoute', param)
  }
}

// 行程相关
export const routeApi = {
  /**
   * 获取行程列表
   * @param {Object} params 获取行程参数
   * @param {string} params.cardKey 卡密
   * @param {string} params.token 用户token
   * @returns {Promise} 行程列表Promise
   */
  getRouteList(params) {
    return request.post('/RouteController/getRouteList', params)
  },

  /**
   * 保存代抢行程
   * @param {Object} params 保存行程参数
   * @param {string} params.cardKey 卡密
   * @param {Array} params.selectRoutes 选择的行程数组
   * @returns {Promise} 保存行程的Promise
   */
  saveRoute(param) {
    return request.post('/RouteController/saveRoute', param)
  }
}

// GIS地理信息
export const gisApi = {
  /**
   * 获取地点的经纬度
   * @param {Object} params 获取经纬度参数
   * @param {string} params.startGisName 地点名称
   * @returns {Promise} 经纬度信息Promise
   */
  getLonLat(params) {
    return request.post('/GISController/getLonLat', params)
  }
}

// 登录相关
export const loginApi = {
  /**
   * 使用卡密登录
   * @param {string} cardKey 卡密
   * @returns {Promise} 登录结果Promise
   */
  login(cardKey) {
    return request.get('/LoginController/login', {
      params: { cardKey }
    })
  },

  /**
   * 更新用户配置
   * @param {Object} config 用户配置详细信息
   * @returns {Promise} 更新配置结果Promise
   */
  updateUserConfig(config) {
    return request.post('/DidiController/updateUserConfig', config)
  },

  //  获取弹窗信息
  queryLatest(cardKey) {
    return request.get('/AnnouncementsController/queryLatest')
  },
}



export default {
  orderApi,
  logApi,
  userApi,
  subTokenApi,
  frequentRouteApi,
  routeApi,
  gisApi,
  loginApi
};